package com.example.mq.mqserver.core;

import java.io.Serializable;

public class BasicProperties implements Serializable {
    // 消息的唯一身份标识，为了保证id的唯一性，可以使用UUID
    private String messageId;
    // 与bindingKey做匹配
    // 如果当前交换机是fanout类型，那么routingKey的值会被忽略
    // 如果当前交换机是direct类型，那么routingKey的值必须与bindingKey的值完全匹配
    // 如果当前交换机是topic类型，那么routingKey的值必须与bindingKey的值匹配，其中bindingKey的值可以使用通配符，例如：#，*
    private String routingKey;
    // 属性表示消息是否要持久化，1表示不持久，2表示持久（RabbitMQ 也是这样）
    private int deliveryMode = 1;

    public String getMessageId() {
        return messageId;
    }

    public void setMessageId(String messageId) {
        this.messageId = messageId;
    }

    public String getRoutingKey() {
        return routingKey;
    }

    public void setRoutingKey(String routingKey) {
        this.routingKey = routingKey;
    }

    public int getDeliveryMode() {
        return deliveryMode;
    }

    public void setDeliveryMode(int deliveryMode) {
        this.deliveryMode = deliveryMode;
    }

    @Override
    public String toString() {
        return "BasicProperties{" +
                "messageId='" + messageId + '\'' +
                ", routingKey='" + routingKey + '\'' +
                ", deliveryMode=" + deliveryMode +
                '}';
    }
}
